home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / osmall / typeinf / readme < prev   
Text File  |  1994-10-24  |  7KB  |  245 lines

  1.                   O'SMALL TYPE INFERENCER Version 0.24 March 1994
  2.  
  3.             Andreas V. Hense
  4.             Universitaet des Saarlandes
  5.             Fachbereich 14 - Informatik
  6.             Postfach 15 1150
  7.             D - 66041 Saarbruecken
  8.             e-mail:        hense@cs.uni-sb.de
  9.  
  10.  
  11.  
  12.  
  13.  
  14. O'small is an object-oriented programming language developed at the
  15. Universitaet des Saarlandes. The type inferencer is now available by
  16. anonymous ftp in addition to an interpreter and a compiler.
  17.  
  18. O'small is mainly suited for academic purposes. The language itself
  19. can be MODIFIED because the source code of the type inferencer and the
  20. specifications for the parser and scanner generators are available.
  21. Using these generators you can make experiments for your own research
  22. in statical analysis of object-oriented languages and questions related
  23. to language design.
  24.  
  25.  
  26.  
  27.  
  28.  
  29. ----------------------------------------------
  30.  
  31. O'SMALL TYPE INFERENCER COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
  32.  
  33. Copyright 1994 by Andreas V. Hense
  34.  
  35. Permission to use, copy, modify, and distribute this software and its
  36. documentation for any purpose and without fee is hereby granted,
  37. provided that the above copyright notice appear in all copies and that
  38. both the copyright notice and this permission notice and warranty
  39. disclaimer appear in supporting documentation.
  40.  
  41. The author disclaims all warranties with regard to this software, including
  42. all implied warranties of merchantability and fitness.  In no event
  43. shall the author be liable for any special, indirect or consequential
  44. damages or any damages whatsoever resulting from loss of use, data or
  45. profits, whether in an action of contract, negligence or other
  46. tortious action, arising out of or in connection with the use or
  47. performance of this software.
  48.  
  49. ----------------------------------------------
  50.  
  51.  
  52.  
  53.  
  54.  
  55. How to obtain the O'SMALL TYPE INFERENCER
  56. -----------------------------------------
  57.  
  58. Send comments and bug reports to:         hense@cs.uni-sb.de
  59.  
  60.  
  61. The means of distributing the type inferencer is anonymous internet
  62. ftp. The following table gives the ftp connection information.
  63.  
  64. Host:             Net Address:      Directory:
  65. -------------------------------------------------------------
  66. cs.uni-sb.de            134.96.7.254      /pub/osmall/typeInf
  67.  
  68. The directory /pub/osmall/typeInf contains this README file and the
  69. compressed tar file osmTI024.tar.Z.
  70.  
  71. ***************************************************************************
  72. NOTE: Ftp should be put into binary mode before transferring the compressed
  73. tar file.
  74. ***************************************************************************
  75.  
  76. Here is a sample dialog:
  77.  
  78.    ftp
  79.    ftp> open cs.uni-sb.de
  80.    Name: anonymous
  81.    Password: <your name>
  82.    ftp> binary
  83.    ftp> cd /pub/osmall/typeInf
  84.    ftp> get README
  85.    ftp> get osmTI024.tar.Z
  86.    ftp> close
  87.    ftp> quit
  88.  
  89. After the files are transferred they should be uncompressed 
  90. and then extracted using tar into a directory called (e.g.) typeInf.
  91. For example:
  92.  
  93.    mkdir typeInf
  94.    mv osmTI024.tar.Z typeInf
  95.    cd typeInf
  96.    uncompress -c osmTI024.tar.Z | tar xf -
  97.  
  98.  
  99.  
  100.  
  101.  
  102. Running under SUN OS 4.1.x
  103. --------------------------
  104.  
  105. The O'small Type Inferencer is invoked with 
  106.  
  107. > infer <filename>
  108.  
  109. If you omit the filename it will prompt you for one. The file should be an
  110. O'small program. O'small programs are kept in files with the extension
  111. .osm (e.g.: integer.osm). At the prompt
  112.  
  113. Please enter filename of O'small source
  114.  
  115. simply fill in the file name without the extension (e.g.: `integer').
  116.  
  117.  
  118.  
  119.  
  120. Running under other operating systems and recompilation
  121. -------------------------------------------------------
  122.  
  123. This software is written in Caml Light [LW93,WL93]. Caml Light is available
  124. by anonymous FTP:
  125.  
  126. Host:        ftp.inria.fr (Internet address 192.93.2.54)
  127. Login name:    anonymous
  128. Password:    your e-mail address
  129. Directory:    lang/caml-light
  130. Files:        depending on your hardware
  131.  
  132. The main advantage of Caml Light is its economical use of resources. It runs
  133. on all kind of hardware platforms: Unix, MacIntosh, PC, Atari. The hardware
  134. does not have to be very powerful. E.g., the O'small Type Inferencer has 
  135. been developed on a 386-SX with 16MHz and 2MB of main memory.
  136.  
  137. To compile and install the O'small Type Inferencer, be sure that you have 
  138. Caml Light properly installed on your machine. Then simply type 
  139.  
  140. > make
  141.  
  142. in the directory osmall. If make complains check the file `makefile'. Your
  143. version of make may be incompatible with ordinary UNIX make.
  144.  
  145. If you intend to play with the system or enhance it (e.g. make it more
  146. efficient), you will find the command 
  147.  
  148. > make sig
  149.  
  150. interesting. This command will result in a series of compilations creating
  151. a file `sig' that contains the complete interface information of the system.
  152. If for some module there exists an .mli file this file will not be 
  153. overwritten but will be appended to the file `sig'.
  154.  
  155. The lexer and parser are generated by camllex and camlyacc.
  156. The concrete syntax of O'small can be gathered from the O'small example
  157. programs in the directory osmProgs. Alternatively, you might like to read
  158. the files osmlex.mll and osmpar.mly for a complete specification. 
  159. O'small's syntax is now more flexible than described in [Hen91g].
  160.  
  161.  
  162.  
  163.  
  164. Running O'small Programs
  165. ------------------------
  166.  
  167. Although programs can be type checked without ever being run, here is the
  168. location of the O'small compiler for all those who are curious what their
  169. programs actually do:
  170.  
  171. Host:             Net Address:      Directory:
  172. -------------------------------------------------------------
  173. cs.uni-sb.de            134.96.7.254      /pub/osmall/machine
  174.  
  175. The directory /pub/osmall/machine contains this README file and the
  176. compressed tar file oma.1.00.tar.Z. The compiler is described in [BFHW94].
  177.  
  178.  
  179.  
  180.  
  181. O'small Example Programs
  182. ------------------------
  183.  
  184. Some of the example programs in this directory are refused by the type
  185. checker. These programs serve the purpose of demonstrating the limitations
  186. of the approach.
  187.  
  188. The type inference may take a LONG time. Therefore, at each series of
  189. resolution steps, a dot is printed on the screen. The types of variables
  190. are printed each time they are looked up in the directory. Before such
  191. a lookup the system of equations is brought into normal form. Thus, an
  192. eventual type clash can be localized to be after the last right-hand side
  193. occurrence of a let bound variable.
  194.  
  195.  
  196.  
  197.  
  198. Bugs
  199. ----
  200. The type checker is a one to one implementation of a declarative 
  201. algorithm described in [Hen94]. It has many inefficiencies that make
  202. it hard to run -- even on a fast machine. It should be run on small O'small
  203. programs only.
  204.  
  205.  
  206.  
  207. References
  208. ----------
  209.  
  210.  
  211. [BFHW94]    C. Boeschen, C. Fecht, A. V. Hense, R. Wilhelm
  212.         An Abstract Machine for an Object-Oriented Language with
  213.            Top-Level Classes,
  214.         Universitaet des Saarlandes, Fachbereich 14,
  215.         D-66123 Saarbruecken,
  216.         A 02/94, March 1994
  217.  
  218.  
  219. [Hen91g]    Andreas V. Hense
  220.         An O'small Interpreter Based on Denotational Semantics,
  221.         Universitaet des Saarlandes, Fachbereich 14,
  222.         D-66123 Saarbruecken,
  223.         A 07/91, November 1991
  224.  
  225.  
  226. [Hen94]        Andreas V. Hense
  227.         Polymorphic Type Inference for Object-Oriented Programming
  228.            Languages,
  229.         Universitaet des Saarlandes, Fachbereich 14,
  230.         D-66123 Saarbruecken,
  231.         1994, forthcoming
  232.  
  233.  
  234. [LW93]        X. Leroy, P. Weis
  235.         Manuel de reference du langage Caml,
  236.         InterEditions,
  237.         Paris 1993
  238.  
  239.  
  240. [WL93]        P. Weis, X. Leroy
  241.         Le langage Caml,
  242.         InterEditions,
  243.         Paris 1993
  244.